#pragma once

#include <map>
#include <queue>
#include "Singleton.h"
#include "tgbot.h"


class TgBotMgr
{
public:
    TgBotMgr();
    virtual ~TgBotMgr();

public:
    static TgBotMgr* Instance()
	{
		return CSingleton<TgBotMgr>::Instance();
	}

public:
    // config load to tgBot_Map
    bool TgBotInfo_Init(const std::map<std::string, std::string>& bot_cfg);

    // push message to botMsg_queue
    bool PushMessageQue(const std::string& msg_type, tgbot::TgBotNotifyMessageReq& msg);

    // get all bot info
    std::map<std::string, BotInfo>& GetAllBots();

    // add discard message count
    void AddDiscardMsgCount(const std::string& msg_type);

private:
    // bots_map [msg_type, BotInfo]
    std::map<std::string, BotInfo> tgBot_Map;
};



